package com.fbms.common.utils;

import cn.hutool.core.collection.CollUtil;
import cn.hutool.json.JSONObject;
import com.fbms.common.exception.ServiceException;
import org.springframework.beans.BeanUtils;

import java.util.List;

/**
 * 类描述：TODO
 *
 * @ClassName CommonBeanUtils
 * @Author HappyBoy
 * @Date 2023-03-15 17:31
 **/
public class CommonBeanUtils {

    /**
     * dto 转换为Do 工具类
     * @param dtoEntity 需要转的类
     * @param doClass 转后的类型
     * @return 转后的类
     */
    public static <Do> Do dtoToDo(Object dtoEntity, Class<Do> doClass) {
        // 判断dto是否为空!
        if (dtoEntity == null) {
            return null;
        }

        // 判断DoClass 是否为空
        if (doClass == null) {
            return null;
        }

        try {
            Do newInstance = doClass.newInstance();
            BeanUtils.copyProperties(dtoEntity, newInstance);
            // Dto转换Do
            return newInstance;
        } catch (Exception e) {
            return null;
        }
    }



    /**
     * do 转换为Dto 工具类
     * @param doEntity 转前
     * @param dtoClass 转后类型
     * @return 转后
     */
    public static <Dto> Dto doToDto(Object doEntity, Class<Dto> dtoClass) {
        // 判断dto是否为空!
        if (doEntity == null) {
            return null;
        }

        // 判断DoClass 是否为空
        if (dtoClass == null) {
            return null;
        }

        try {
            Dto newInstance = dtoClass.newInstance();
            BeanUtils.copyProperties(doEntity, newInstance);
            // Dto转换Do
            return newInstance;
        } catch (Exception e) {
            return null;
        }
    }
}
